﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum ПорядокРасчетаБазы
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"becc7888-bdbf-4d29-aa47-53ca080b79c4\", \"Представление\":\"ЗаВесьПериод\"}")]
		ЗаВесьПериод = 0,//За весь период
		[EnumMember(Value = "{\"Ссылка\":\"ee78dd43-4438-4062-aa76-bb241fb6bfc4\", \"Представление\":\"ПриПриемеНаРаботу\"}")]
		ПриПриемеНаРаботу = 1,//При приеме на работу
		[EnumMember(Value = "{\"Ссылка\":\"ef43fe4f-a564-44b7-b8bd-a0c460a35419\", \"Представление\":\"ПриУвольнении\"}")]
		ПриУвольнении = 2,//При увольнении
	}
	public static partial class ПорядокРасчетаБазы_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ЗаВесьПериод = new Guid("ca5347aa-0b08-c479-4d29-bdbfbecc7888");//За весь период
		public static readonly Guid ПриПриемеНаРаботу = new Guid("24bb76aa-b61f-c4bf-4062-4438ee78dd43");//При приеме на работу
		public static readonly Guid ПриУвольнении = new Guid("c4a0bdb8-a360-1954-44b7-a564ef43fe4f");//При увольнении
		public static ПорядокРасчетаБазы Получить(this ПорядокРасчетаБазы Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ПорядокРасчетаБазы Получить(this ПорядокРасчетаБазы Значение, Guid Ссылка)
		{
			if(Ссылка == ЗаВесьПериод)
			{
				return ПорядокРасчетаБазы.ЗаВесьПериод;
			}
			else if(Ссылка == ПриПриемеНаРаботу)
			{
				return ПорядокРасчетаБазы.ПриПриемеНаРаботу;
			}
			else if(Ссылка == ПриУвольнении)
			{
				return ПорядокРасчетаБазы.ПриУвольнении;
			}
			return ПорядокРасчетаБазы.ПустаяСсылка;
		}
		public static byte[] Ключ(this ПорядокРасчетаБазы Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ПорядокРасчетаБазы Значение)
		{
			switch (Значение)
			{
				case ПорядокРасчетаБазы.ЗаВесьПериод: return ЗаВесьПериод;
				case ПорядокРасчетаБазы.ПриПриемеНаРаботу: return ПриПриемеНаРаботу;
				case ПорядокРасчетаБазы.ПриУвольнении: return ПриУвольнении;
			}
			return Guid.Empty;
		}
	}
}